package com.example.springbootdemo.text.zh;

import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;

import java.io.IOException;
import java.io.StringReader;
import java.util.HashSet;
import java.util.Set;

public class ChineseTokenizer {

    /**
     * 使用 IKAnalyzer 对中文文本进行分词。
     *
     * @param text 输入的中文文本
     * @return 分词后的词语集合
     * @throws IOException 如果分词过程中出现IO错误
     */
    public static Set<String> tokenize(String text) throws IOException {
        Set<String> tokens = new HashSet<>();
        StringReader reader = new StringReader(text);
        IKSegmenter ik = new IKSegmenter(reader, true); // true 表示使用智能分词
        Lexeme lexeme;
        while ((lexeme = ik.next()) != null) {
            tokens.add(lexeme.getLexemeText());
        }
        reader.close();
        return tokens;
    }
}
